#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<errno.h>
#include<string.h>
#define N 5
const char *errString[]={
      "success",
      "error 1",
      "error 2",
      "error 3",
      "error 4",
      "error 5"
};
void runChild(){
   int cnt=10;
   while(cnt)
   {
       printf("i am child,pid=%d,ppid=%d\n",getpid(),getppid());
       sleep(1);
       cnt--;
   }
}
void show()
{
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
//  exit(1);
//  _exit(2);
    return ;
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
    printf("hello show!\n");
}
int main()
{
    for(int i=0;i<N;i++)
    {
        pid_t id=fork();
        if(id==0)
        {
            runChild();
            exit(0);
        }
    }
    sleep(10);
    return 0;
 //   show();
   // int a[10];
   // printf("%d\n",a[11]);
   // printf("HELLO WORLD\n");
   // printf("%s\n",strerror(5));

 //   exit(55555);
 // sleep(1);
 // //printf("\n");
 // exit(1);//进行清除缓冲区，释放空间等操作
 // _exit(25);//不清理内存，也不释放空间，直接退出进程，感觉还是风险性比较高
   // char *p=NULL;
   // *p=100;
//   int ret=0;
//    char*p=(char*)malloc(sizeof(1000000000*1000000000000000000000000*10000*1000));
//   if(p==NULL)
//   {
//      printf("malloc error,%d:%s\n",errno,strerror(errno));
//      ret=errno;
//   }
//   else
//   {
//      printf("malloc success");
//   }
//   return ret;
//   for(int i=0;i<200;i++)
//   {
//       printf("[%d]:%s\n",i,strerror(i));
//   }
    
    return 0;
}
